#include <stdio.h>
#include <string.h>
//枚举类型

struct man
{
    char name[20];
    int age;
    int sex;
};

//#define MAN 1
//#define WOMAN 0
enum sex {MAN, WOMAN};

enum spectrum {red = 100, yellow, green = 12, blue, white, black};
//MAN WOMAN 是int的常量，无法改变值的
//枚举的作用，快速生成多个常量
//我们一般不在意枚举元素的值
//在意枚举成员，字面的含义


int main()
{
    struct man m;
    strcpy(m.name, "tom");
    m.age = 20;

    enum sex s;
    s = MAN;
    m.sex = s;

    printf("%d\n", MAN);
    printf("%d\n", WOMAN);

    enum spectrum color;
    color = red;
    //red = 5;//报错
    //int *p = &100;//100在系统内是由CPU产生的一个立即数
    const char *p = "hello";//"hello" 在内存的常量区里面
    int a = 100;//cpu生成一个立即数100，在栈中分配一个4个BYTE空间，把这个空间的值设置为100
    printf("blue == %d, blue = %d, yellow = %d\n", red, blue, yellow);

    return 0;
}

